//定义详情模块数据ts类型
// 响应数据的类型
export interface ResponseData {
    code: number,
    message: string,
    ok: boolean
    // data 具体数据类型按情况细分
}

//data 医院详情数据类型
export interface HosPitalDataDetail {
    "bookingRule": {
        "cycle": number,
        "releaseTime": string,
        "stopTime": string,
        "quitDay": number,
        "quitTime": string,
        "rule": string[]
    },
    "hospital": {
        "id": string,
        "createTime": string,
        "updateTime": string,
        "isDeleted": number,
        "param": {
            "hostypeString": string,
            "fullAddress": string
        },
        "hoscode": string,
        "hosname": string,
        "hostype": string,
        "provinceCode": string,
        "cityCode": string,
        "districtCode": string,
        "address": string,
        "logoData": string,
        "intro": null,
        "route": string,
        "status": number,
        "bookingRule": null
    }
}

// 医院详情接口返回的全部数据的数据类型
export interface hospitalDetail extends ResponseData {
    data: HosPitalDataDetail
}

//代表已有的医院数据的ts类型
export interface Hospital {
    "id": string,
    "createTime": string,
    "updateTime": string,
    "isDeleted": number,
    "param": {
        "hostypeString": string,
        fullAddress: string
    },
    "hoscode": string,
    "hosname": string,
    "hostype": string,
    "provinceCode": string,
    "cityCode": string,
    "districtCode": string,
    "address": string,
    "logoData": string,
    "intro": string,
    "route": string,
    "status": number,
    "bookingRule": {
        "cycle": number,
        "releaseTime": string,
        "stopTime": string,
        "quitDay": number,
        "quitTime": string,
        "rule": string[]
    }
}
// 查询医院列表接口返回的全部医院数据的数据类型
export interface hospitalList extends ResponseData {
    data: {
        content: Hospital[],
        "pageable": {
            "sort": {
                "sorted": boolean,
                "unsorted": boolean,
                "empty": boolean
            },
            "pageNumber": number,
            "pageSize": number,
            "offset": number,
            "paged": boolean,
            "unpaged": boolean
        },
        "totalPages": number,
        "totalElements": number,
        "last": boolean,
        "first": boolean,
        "sort": {
            "sorted": boolean,
            "unsorted": boolean,
            "empty": boolean
        },
        "numberOfElements": number,
        "size": number,
        "number": number,
        "empty": boolean
    }
}

export interface HospitalInfo extends ResponseData {
    data: Hospital[]
}

// 医院科室列表接口返回的数据类型
export interface WorkData {
    "workDate": string,
    "workDateMd": string,
    "dayOfWeek": string,
    "docCount": number,
    "reservedNumber": null,
    "availableNumber": number,
    "status": number
}
export interface BaseMap {
    "workDateString": string,
    "releaseTime": string,
    "bigname": string,
    "stopTime": string,
    "depname": string,
    "hosname": string
}
export interface aaa {
    "total": number,
    "bookingScheduleList": WorkData[],
    "baseMap": BaseMap
}
// 医院科室信息
export interface HospitalWordData extends ResponseData {
    data: aaa
}

// user 模块数据类型
//获取用户信息接口返回的数据的ts类型
//代表一个用户信息的数据类型
export interface UserInfo {
    "id": number,
    "createTime": string,
    "updateTime": string,
    "isDeleted": number,
    "param": {
    },
    "openid": null,
    "nickName": null,
    "phone": string,
    "name": string,
    "certificatesType": string,
    "certificatesNo": string,
    "certificatesUrl": null,
    "authStatus": number,
    "status": number
}
export interface UseringoResponseData extends ResponseData {
    data: UserInfo
}
export interface CertationType {
    "id": number,
    "createTime": string,
    "updateTime": string,
    "isDeleted": number,
    "param": object,
    "parentId": number,
    "name": string,
    "value": string,
    "dictCode": string,
    "hasChildren": boolean
}
export interface CertationTypeResponseData extends ResponseData {
    data: CertationType[]
}

export interface User {
    "id": number,
    "createTime": string,
    "updateTime": string,
    "isDeleted": number,
    "param": {
        "certificatesTypeString": string,
        "contactsCertificatesTypeString": string,
        "cityString": null,
        "fullAddress": string,
        "districtString": null,
        "provinceString": null
    },
    "userId": number,
    "name": number,
    "certificatesType": string,
    "certificatesNo": string,
    "sex": number,
    "birthdate": string,
    "phone": string,
    "isMarry": number,
    "provinceCode": null,
    "cityCode": null,
    "districtCode": null,
    "address": string,
    "contactsName": string,
    "contactsCertificatesType": string,
    "contactsCertificatesNo": string,
    "contactsPhone": string,
    "isInsure": number,
    "cardNo": null,
    "status": string
}
// 获取某账号下的所有用户信息接口返回的数据的ts类型
export interface UserResponseData extends ResponseData {
    data: User[]
}

export interface OrderState {
    "comment": string,
    "status": number
}

//订单状态码列表接口返回的数据ts类型
export interface AllOrderStateResponseData extends ResponseData {
    data: OrderState[]
}

export interface OrderInfo {
    data: {
        "id": number,
        "createTime": string,
        "updateTime": string,
        "isDeleted": number,
        "param": {
            "orderStatusString": string
        },
        "userId": number,
        "outTradeNo": string,
        "hoscode": string,
        "hosname": string,
        "depcode": string,
        "depname": string,
        "scheduleId": string,
        "title": string,
        "reserveDate": string,
        "reserveTime": number,
        "patientId": number,
        "patientName": string,
        "patientPhone": string,
        "hosRecordId": string,
        "number": number,
        "fetchTime": string,
        "fetchAddress": string,
        "amount": number,
        "quitTime": string,
        "orderStatus": number
    }
}
// 获取订单详情接口返回的数据的ts类型
export interface OrderResponseData extends ResponseData {
    data: OrderInfo
}

//代表就诊人ts类型
export interface patientInfo {
    "id": number,
    "createTime": string,
    "updateTime": string,
    "isDeleted": number,
    "param": {
        "certificatesTypeString": string,
        "contactsCertificatesTypeString": string,
        "cityString": null,
        "fullAddress": string,
        "districtString": null,
        "provinceString": null
    },
    "userId": number,
    "name": string,
    "certificatesType": string,
    "certificatesNo": string,
    "sex": number,
    "birthdate": string,
    "phone": string,
    "isMarry": number,
    "provinceCode": null,
    "cityCode": null,
    "districtCode": null,
    "address": string,
    "contactsName": string,
    "contactsCertificatesType": string,
    "contactsCertificatesNo": string,
    "contactsPhone": string,
    "isInsure": number,
    "cardNo": null,
    "status": string
}

//代表的是一个医生的数据
export interface Doctor {
    "id": string,
    "createTime": string,
    "updateTime": string,
    "isDeleted": string,
    "param": {
        "dayOfWeek": string,
        "depname": string,
        "hosname": string
    },
    "hoscode": string,
    "depcode": string,
    "title": string,
    "docname": string,
    "skill": string,
    "workDate": string,
    "workTime": number,
    "reservedNumber": number,
    "availableNumber": number,
    "amount": number,
    "status": number,
    "hosScheduleId": string
}
//获取医生排班接口返回的数据
export interface DoctorResponseData extends ResponseData {
    data: Doctor[]
}